(function()
{
    var global = (function(){return this;})();
    var tmp = function(){};
    var create = function(obj){
        tmp.prototype = obj;
        return new tmp();
    };

    global.Freezer = function(obj){
        return function(){
            return create(obj);
        };
    };

})();


var wibble = Freezer({x:2, y:3});

var wobble = wibble();
var woozle = wibble();

wobble.x === 2 || ddt();
woozle.x === 2 || ddt();

wobble.x = 3;
woozle.x === 2 || ddt();
